IMoniker - Anti-Moniker Implementation
Anti-monikers
are the inverse of the OLE implementations of file, item, and pointer monikers.
That is, an anti-moniker composed to the right of a file moniker, item moniker,
or pointer moniker composes to nothing.
When To Use
If you re a
moniker client, you typically do not need to use anti-monikers. When you need
the inverse of a moniker, you should call IMoniker::Inverse
The only
situation in which you should explicitly use an anti-moniker is if you are
writing a new moniker class and if you have no special requirements for
constructing inverses to your monikers. In that situation, you can return
anti-monikers from your implementation of IMoniker::Inverse. In your
implementation of IMoniker::ComposeWith
Remarks
IMoniker::BindToObject
This method
is not implemented. It returns E_NOTIMPL.
IMoniker::BindToStorage
This method
is not implemented. It returns E_NOTIMPL.
IMoniker::Reduce
This method
returns MK_S_REDUCED_TO_SELF and passes back the same moniker.
IMoniker::ComposeWith
If fOnlyIfNotGeneric
is TRUE, this method sets ppmkComposite to NULL moniker and returns
MK_E_NEEDGENERIC; otherwise, the method returns the result of combining the two
monikers into a generic composite. Note that composing a file, item, or pointer
moniker to the right of an anti-moniker produces a generic composite rather
than composing to nothing, as would be the case if the order of composition
were reversed.
IMoniker::Enum
This method
returns S_OK and sets *ppenumMoniker to NULL.
IMoniker::IsEqual
This method
returns S_OK if both are anti-monikers; otherwise, it returns S_FALSE.
IMoniker::Hash
This method
calculates a hash value for the moniker.
IMoniker::IsRunning
This method
checks the ROT to see if the object is running.
IMoniker::GetTimeOfLastChange
This method
is not implemented (that is, it returns E_NOTIMPL).
IMoniker::Inverse
This method
returns MK_E_NOINVERSE and sets *ppmk to NULL.
IMoniker::CommonPrefixWith
If the other
moniker is also an anti-moniker, the method returns MK_S_US and sets ppmkPrefix
to this moniker. Otherwise, the method calls the MonikerCommonPrefixWith
IMoniker::RelativePathTo
This method
returns MK_S_HIM and sets *ppmkRelPath to the other moniker.
IMoniker::GetDisplayName
For each
anti-moniker contained in this moniker, this method return one instance of
\..
IMoniker::ParseDisplayName
This method
is not implemented (that is, it returns E_NOTIMPL).
IMoniker::IsSystemMoniker
This method
returns S_OK and indicates MKSYS_ANTIMONIKER.
See Also